<?php

/*
	这个类只能放在UPLOAD文件价的同级目录，而且还要配合全局常量DIR,UPLOAD使用
	可以上传单张，多张图片，还集成了删除服务器图片的功能
*/

final class Image{
	
	//输出错误
	function err(){
		echo '<pre>';
		var_dump($_REQUEST);
		echo '<hr>';
		var_dump($_FILES);
		echo '</pre>';
	}
		
	//单图片
	public function dantu_upload($imageName){
		$img=$_FILES[$imageName];
		
		$imgsize=$img['size'];
		$imgtype=$img['type'];
		$imgtmpname=$img['tmp_name'];
		$imgerror=$img['error'];
		$imgname=$img['name'];
		
		$images=$this->savefile($imgerror,$imgname,$imgtype,$imgtmpname,$imgsize);
		return $images;
	}
	
	//多图上传 
	function duotu_upload($duoTuName){
		$duotus='';
		$img=$_FILES[$duoTuName];
		//多图上传时 名字还是一个对象  只是对象里面有多个name,type,error等，所以上传文件的多少要使用 count（对象[name]）
		$len=count( $img['name'] );
		
		for($i=0;$i<$len;++$i)
		{
			$imgsize=$img['size'][$i];
			$imgtype=$img['type'][$i];
			$imgtmpname=$img['tmp_name'][$i];
			$imgerror=$img['error'][$i];
			$imgname=$img['name'][$i];
			
			$tmppf=$this->savefile($imgerror,$imgname,$imgtype,$imgtmpname,$imgsize);
			if($i<$len-1){
				$duotus.= $tmppf .';';
			}else{
				$duotus.= $tmppf;
			}
		}
		return $duotus;
	}
	
	
	//多图上传 
	function duotu_upload2($duoTuName){
		$duotuarr=[];
		$img=$_FILES[$duoTuName];
		//多图上传时 名字还是一个对象  只是对象里面有多个name,type,error等，所以上传文件的多少要使用 count（对象[name]）
		$len=count( $img['name'] );
		
		for($i=0;$i<$len;++$i)
		{
			$imgsize=$img['size'][$i];
			$imgtype=$img['type'][$i];
			$imgtmpname=$img['tmp_name'][$i];
			$imgerror=$img['error'][$i];
			$imgname=$img['name'][$i];
			
			$duotuarr[] = $this->savefile($imgerror,$imgname,$imgtype,$imgtmpname,$imgsize);
						
		}
		return $duotuarr;
	}
	
	//保存图片文件
	protected function savefile($imgerror,$imgname,$imgtype,$imgtmpname,$imgsize){
		$images='';
		if($imgerror!=0){
			$this->err();
			die("<script>alert('上传文件错误码:{$imgerror}')</script>");
		}
		
		if($imgsize<1){
			$this->err();
			die("<script>alert('图片小于1:{$imgsize}')</script>");
			return $images;
		}
		
		if(	$imgtype=="image/gif" || $imgtype == "image/jpeg" || $imgtype == "image/pjpeg" ||  
			$imgtype=="image/x-png" ||	$imgtype=="image/png" || $imgtype == "image/jpg"  ){
			$imghouzui=strrchr($imgname,'.');
			$imageName=UPLOAD.time().'_'.rand(0,100).$imghouzui;
			//$imageName=UPLOAD.$imgname;
			move_uploaded_file($imgtmpname,$imageName)or die('<script>alert("请使用英文文件名")</script>');
			$images=DIR.$imageName;
			return $images;
		}else{
			unlink($imgtmpname);
			echo "类型".$imgtype.'错误';
			return $images;
		}
		
	}
	
	//删除本服务器图片
	public function delete($imgWebUrl){
		$r='失败';
		$upStart=strrpos($imgWebUrl,'upload/');
		if($upStart===false){
			echo $imgWebUrl.' :欲删除的图片路径错误。';
		}else{
			$pf=substr($imgWebUrl,$upStart);
			//$pf=strrchr($imgWebUrl,'upload');
			echo 'delete文件路径： '.$pf;
			
			try{
				unlink($pf);
				$r= '成功';
			}catch(Exception $e){
				echo $e->$e->getMessage();
				$r= '失败';
			}finally{
				return $r;
			}
			
		}
		return $r;
	}
}
?>